#ifndef __V_MALLOC_H
#define __V_MALLOC_H

#include <stdint.h>
#include <stddef.h>

#ifdef __cplusplus
extern "C" {
#endif

typedef struct malloc_Hooks
{
    void *(*malloc_fn)(size_t sz);
    void (*free_fn)(void *ptr);
    void *(*calloc_fn)(size_t nmemb,size_t sz);
    void *(*realloc_fn)(void *ptr,size_t sz);
}mallocHooks_t;

void vMallocInitHooks(mallocHooks_t *hooks);

void *vMalloc(size_t sz);
void vFree(void *ptr);

void *vCalloc(size_t nmemb,size_t sz);
void *vRealloc(void *ptr,size_t sz);

char *vStrdup(const char *str);

#ifdef __cplusplus
}
#endif

#endif
